// 类型说明参照文档：云天接口文档(4).pdf
export type ContentType = {
  type: string // 内容类型  text，image_url
  image_url?: {
    url?: string // 图片url 支持base64, type为inage_url时必填
    name?: string // 图片中文名称
    detail?: string //  指定图像的详细信息级别。  auto low high
  }
  file_url?: {
    url?: string // 文件url
    name?: string // 文件中文名称
  }
  text?: string //  type为text时必填， 文本信息
  internetCitations?: any // 联网信息
  think?: string // 思考过程
  thinkTime?: number // 思考时间
  chatStopTag?: string // 停止生成显示 前端用
}

//  溯源信息
export type CitationsType = {
  type: string // 溯源类型  internet    knowledgebase   plugin
  title: string // 网页标题   知识库文件名称  插件名称
  url: string // 网页地址  知识库文件地址
  detail?: any
  file_id?: string
  knowledge_name?: string // 知识库名称
}

export type ChatMessageType = {
  role: string // 角色  system  user assistant，前端额外加loading、citations, error方便处理，前端自定义状态设置ignore为true
  content?: ContentType[]
  citations?: CitationsType[]
  ignore?: boolean
  createTime?: number // 时间戳，暂时用于前端控制时间轮次
  status?: number // 记录状态，状态==30 表示不合规，过滤user信息和对应assistant
  type?: string
}

export type ChoicesType = {
  index: number
  delta: {
    content: string // 响应内容
    reasoning_content?: string // 思考过程
  }
}

// tokens 使用信息
export type UsageType = {
  completion_tokens: number // 回答token消耗
  prompt_tokens: number // 提示词token消耗
  total_tokens: number // total_tokens
}

export type ChatRequestType = {
  is_preview: string // 0：正式、1：预览
  messages: ChatMessageType[] // 包含到目前为止的对话的消息列表。
  app_id: string // 智能体ID
}

export type ChatResponseType = {
  choices: ChoicesType[]
  usage: UsageType
  citations: CitationsType[]
  finish_reason: Object // 停止原因
  status: number // AgentStatus
  created: number // 消息返回时间
}

export type LimitInfoType = {
  remember_mode: number // 0 最后轮次，1 最后分钟数
  remember_last_num: number
  remember_last_minute: number
}
